/**************************************************************************
** Qt Creator license header template
**   Special keywords: Programmer 2012/3/20 2012
**   Environment variables: 
**   To protect a percent sign, use '%'.
**************************************************************************/

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QToolBar>
#include <QStatusBar>

#include "glarea.h"

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    
signals:
    void setRenderMode(int mode);
public slots:
    void setSoomthMode();
    void setPointsMode();
    void setWireMode();
    void setFlatWireMode();
    void setHiddenMode();
    void setFlatMode();



//Methods
private:
    void createActions();
    void createMenus();
    void createGlArea();

    void createConnections();


//Attributes
private:
    //QMenu* fileMenu;
    //QMenu* filterMenu;

    //file menu's actions
    QAction* openAction;
    QAction* closeAction;
    QAction* clearAction;
    QAction* modelInfoAction;

    //filter menu's actions
    QAction* quadricSimpAction;
    QAction* quadricPMAction;
    QAction* midPMAction;
    QAction* cleanMeshAction;


    //render menu's actions
    QAction* smoothModeAction;
    QAction* pointsModeAction;
    QAction* wireModeAction;
    QAction* flatWireModeAction;
    QAction* hiddenModeAction;
    QAction* flatModeAction;


    GLArea* glDrawArea;
    //QStatusBar* statusMsgBar;
    
};

#endif // MAINWINDOW_H
